; Disassembly of the file "CCP.bin" ; ; CPU Type: Z80 ; ; Created with dZ80 2.0 ; ; on Saturday, 13 of July 2013 at 03:09 PM ; C900 C35CCC JP $CC5C ; JUMP TO START OF CONSOLE COMMAND PROGRAM C903 C358CC JP $CC58 ; JUMP TO START OF CCP W/ CLEARING OF INPUT BUFFER COUNTER C906 7F DEFB $7F ; MAXIMUM LENGTH OF INPUT BUFFER C907 00 DEFB $00 ; CURRENT LENGTH OF INPUT BUFFER C908 20 DEFB $20 ; * ======================= C909 20 DEFB $20 ; * C90A 20 DEFB $20 ; * C908-C987 C90B 20 DEFB $20 ; * C90C 20 DEFB $20 ; * C90D 20 DEFB $20 ; * BUFFER C90E 20 DEFB $20 ; * C90F 20 DEFB $20 ; * C910 20 DEFB $20 ; * WITH C911 20 DEFB $20 ; * C912 20 DEFB $20 ; * C913 20 DEFB $20 ; * COPYRIGHT MESSAGE C914 20 DEFB $20 ; * C915 20 DEFB $20 ; * C916 20 DEFB $20 ; * THROWN IN C917 20 DEFB $20 ; * C918 43 DEFB $43 ; * "C" C919 4F DEFB $4F ; * "O" C91A 50 DEFB $50 ; * "P" C91B 59 DEFB $59 ; * "Y" C91C 52 DEFB $52 ; * "R" C91D 49 DEFB $49 ; * "I' C91E 47 DEFB $47 ; * "G" C91F 48 DEFB $48 ; * "H" C920 54 DEFB $54 ; * "T" C921 20 DEFB $20 ; * " " C922 28 DEFB $28 ; * "(" C923 43 DEFB $43 ; * "C" C924 29 DEFB $29 ; * ")" C925 20 DEFB $20 ; * " " C926 31 DEFB $31 ; * "1" C927 39 DEFB $39 ; * "9" C928 37 DEFB $37 ; * "7" C929 39 DEFB $39 ; * "9" C92A 2C DEFB $2C ; * "," C92B 20 DEFB $20 ; * " " C92C 44 DEFB $44 ; * "D" C92D 49 DEFB $49 ; * "I" C92E 47 DEFB $47 ; * "G" C92F 49 DEFB $49 ; * "I" C930 54 DEFB $54 ; * "T" C931 41 DEFB $41 ; * "A" C932 4C DEFB $4C ; * "L" C933 20 DEFB $20 ; * " " C934 52 DEFB $52 ; * "R" C935 45 DEFB $45 ; * "E" C936 53 DEFB $53 ; * "S" C937 45 DEFB $45 ; * "E" C938 41 DEFB $41 ; * "A" C939 52 DEFB $52 ; * "R" C93A 43 DEFB $43 ; * "C" C93B 48 DEFB $48 ; * "H" C93C 20 DEFB $20 ; * " " C93D 20 DEFB $20 ; * " " C93E 00 DEFB $00 ; * C93F 00 DEFB $00 ; * C940 00 DEFB $00 ; * C941 00 DEFB $00 ; * C942 00 DEFB $00 ; * C943 00 DEFB $00 ; * C944 00 DEFB $00 ; * C945 00 DEFB $00 ; * C946 00 DEFB $00 ; * C947 00 DEFB $00 ; * C948 00 DEFB $00 ; * C949 00 DEFB $00 ; * C94A 00 DEFB $00 ; * C94B 00 DEFB $00 ; * C94C 00 DEFB $00 ; * C94D 00 DEFB $00 ; * C94E 00 DEFB $00 ; * C94F 00 DEFB $00 ; * C950 00 DEFB $00 ; * C951 00 DEFB $00 ; * C952 00 DEFB $00 ; * C953 00 DEFB $00 ; * C954 00 DEFB $00 ; * C955 00 DEFB $00 ; * C956 00 DEFB $00 ; * C957 00 DEFB $00 ; * C958 00 DEFB $00 ; * C959 00 DEFB $00 ; * C95A 00 DEFB $00 ; * C95B 00 DEFB $00 ; * C95C 00 DEFB $00 ; * C95D 00 DEFB $00 ; * C95E 00 DEFB $00 ; * C95F 00 DEFB $00 ; * C960 00 DEFB $00 ; * C961 00 DEFB $00 ; * C962 00 DEFB $00 ; * C963 00 DEFB $00 ; * C964 00 DEFB $00 ; * C965 00 DEFB $00 ; * C966 00 DEFB $00 ; * C967 00 DEFB $00 ; * C968 00 DEFB $00 ; * C969 00 DEFB $00 ; * C96A 00 DEFB $00 ; * C96B 00 DEFB $00 ; * C96C 00 DEFB $00 ; * C96D 00 DEFB $00 ; * C96E 00 DEFB $00 ; * C96F 00 DEFB $00 ; * C970 00 DEFB $00 ; * C971 00 DEFB $00 ; * C972 00 DEFB $00 ; * C973 00 DEFB $00 ; * C974 00 DEFB $00 ; * C975 00 DEFB $00 ; * C976 00 DEFB $00 ; * C977 00 DEFB $00 ; * C978 00 DEFB $00 ; * C979 00 DEFB $00 ; * C97A 00 DEFB $00 ; * C97B 00 DEFB $00 ; * C97C 00 DEFB $00 ; * C97D 00 DEFB $00 ; * C97E 00 DEFB $00 ; * C97F 00 DEFB $00 ; * C980 00 DEFB $00 ; * C981 00 DEFB $00 ; * C982 00 DEFB $00 ; * C983 00 DEFB $00 ; * C984 00 DEFB $00 ; * C985 00 DEFB $00 ; * C986 00 DEFB $00 ; * C987 00 DEFB $00 ; * =================== C988 08 DEFB $08 ; \ C989 C9 DEFB $C9 ; / Pointer to input buffer used while parsing input line C98A 00 DEFB $00 ; \ Pointer to start of current command inn input buffer. C98B 00 DEFB $00 ; / Used by WHAT for error prompt. C98C 5F LD E,A ; char to be written to console C98D 0E02 LD C,$02 ; BDOS "Console Output" function code C98F C30500 JP $0005 ; call BDOS function 02h (Console Output) C992 C5 PUSH BC C993 CD8CC9 CALL $C98C ; write char from A to console C996 C1 POP BC C997 C9 RET C998 3E0D LD A,$0D C99A CD92C9 CALL $C992 ; write CR to console C99D 3E0A LD A,$0A C99F C392C9 JP $C992 ; write LF to console C9A2 3E20 LD A,$20 C9A4 C392C9 JP $C992 ; write SPACE to console C9A7 C5 PUSH BC C9A8 CD98C9 CALL $C998 C9AB E1 POP HL C9AC 7E LD A,(HL) C9AD B7 OR A C9AE C8 RET Z C9AF 23 INC HL C9B0 E5 PUSH HL C9B1 CD8CC9 CALL $C98C C9B4 E1 POP HL C9B5 C3ACC9 JP $C9AC C9B8 0E0D LD C,$0D ; BDOS "Reset Disk System" function code C9BA C30500 JP $0005 ; call BDOS function 0Dh (Reset Disk System) C9BD 5F LD E,A ; drive number to be selected C9BE 0E0E LD C,$0E ; BDOS "Select Disk" function code C9C0 C30500 JP $0005 ; call BDOS function 0Eh (Select Disk) C9C3 CD0500 CALL $0005 C9C6 32EED0 LD ($D0EE),A C9C9 3C INC A C9CA C9 RET C9CB 0E0F LD C,$0F C9CD C3C3C9 JP $C9C3 C9D0 AF XOR A C9D1 32EDD0 LD ($D0ED),A C9D4 11CDD0 LD DE,$D0CD C9D7 C3CBC9 JP $C9CB C9DA 0E10 LD C,$10 C9DC C3C3C9 JP $C9C3 C9DF 0E11 LD C,$11 C9E1 C3C3C9 JP $C9C3 C9E4 0E12 LD C,$12 C9E6 C3C3C9 JP $C9C3 C9E9 11CDD0 LD DE,$D0CD C9EC C3DFC9 JP $C9DF C9EF 0E13 LD C,$13 C9F1 C30500 JP $0005 C9F4 CD0500 CALL $0005 C9F7 B7 OR A C9F8 C9 RET C9F9 0E14 LD C,$14 C9FB C3F4C9 JP $C9F4 C9FE 11CDD0 LD DE,$D0CD CA01 C3F9C9 JP $C9F9 CA04 0E15 LD C,$15 CA06 C3F4C9 JP $C9F4 CA09 0E16 LD C,$16 CA0B C3C3C9 JP $C9C3 CA0E 0E17 LD C,$17 CA10 C30500 JP $0005 CA13 1EFF LD E,$FF CA15 0E20 LD C,$20 ; BDOS "Set/Get User Code" function code CA17 C30500 JP $0005 ; call BDOS function 20h (Set/Get User Code) CA1A CD13CA CALL $CA13 CA1D 87 ADD A,A CA1E 87 ADD A,A CA1F 87 ADD A,A CA20 87 ADD A,A CA21 21EFD0 LD HL,$D0EF CA24 B6 OR (HL) CA25 320400 LD ($0004),A CA28 C9 RET CA29 3AEFD0 LD A,($D0EF) CA2C 320400 LD ($0004),A CA2F C9 RET CA30 FE61 CP $61 CA32 D8 RET C CA33 FE7B CP $7B CA35 D0 RET NC CA36 E65F AND $5F CA38 C9 RET CA39 3AABD0 LD A,($D0AB) CA3C B7 OR A CA3D CA96CA JP Z,$CA96 CA40 3AEFD0 LD A,($D0EF) CA43 B7 OR A CA44 3E00 LD A,$00 CA46 C4BDC9 CALL NZ,$C9BD CA49 11ACD0 LD DE,$D0AC CA4C CDCBC9 CALL $C9CB CA4F CA96CA JP Z,$CA96 CA52 3ABBD0 LD A,($D0BB) CA55 3D DEC A CA56 32CCD0 LD ($D0CC),A CA59 11ACD0 LD DE,$D0AC CA5C CDF9C9 CALL $C9F9 CA5F C296CA JP NZ,$CA96 CA62 1107C9 LD DE,$C907 CA65 218000 LD HL,$0080 CA68 0680 LD B,$80 CA6A CD42CD CALL $CD42 CA6D 21BAD0 LD HL,$D0BA CA70 3600 LD (HL),$00 CA72 23 INC HL CA73 35 DEC (HL) CA74 11ACD0 LD DE,$D0AC CA77 CDDAC9 CALL $C9DA CA7A CA96CA JP Z,$CA96 CA7D 3AEFD0 LD A,($D0EF) CA80 B7 OR A CA81 C4BDC9 CALL NZ,$C9BD CA84 2108C9 LD HL,$C908 CA87 CDACC9 CALL $C9AC CA8A CDC2CA CALL $CAC2 CA8D CAA7CA JP Z,$CAA7 CA90 CDDDCA CALL $CADD CA93 C382CC JP $CC82 CA96 CDDDCA CALL $CADD CA99 CD1ACA CALL $CA1A CA9C 0E0A LD C,$0A CA9E 1106C9 LD DE,$C906 CAA1 CD0500 CALL $0005 CAA4 CD29CA CALL $CA29 CAA7 2107C9 LD HL,$C907 CAAA 46 LD B,(HL) CAAB 23 INC HL CAAC 78 LD A,B CAAD B7 OR A CAAE CABACA JP Z,$CABA CAB1 7E LD A,(HL) CAB2 CD30CA CALL $CA30 CAB5 77 LD (HL),A CAB6 05 DEC B CAB7 C3ABCA JP $CAAB CABA 77 LD (HL),A CABB 2108C9 LD HL,$C908 CABE 2288C9 LD ($C988),HL CAC1 C9 RET CAC2 0E0B LD C,$0B CAC4 CD0500 CALL $0005 CAC7 B7 OR A CAC8 C8 RET Z CAC9 0E01 LD C,$01 CACB CD0500 CALL $0005 CACE B7 OR A CACF C9 RET CAD0 0E19 LD C,$19 CAD2 C30500 JP $0005 CAD5 118000 LD DE,$0080 CAD8 0E1A LD C,$1A CADA C30500 JP $0005 CADD 21ABD0 LD HL,$D0AB CAE0 7E LD A,(HL) CAE1 B7 OR A CAE2 C8 RET Z CAE3 3600 LD (HL),$00 CAE5 AF XOR A CAE6 CDBDC9 CALL $C9BD CAE9 11ACD0 LD DE,$D0AC CAEC CDEFC9 CALL $C9EF CAEF 3AEFD0 LD A,($D0EF) CAF2 C3BDC9 JP $C9BD CAF5 1128CC LD DE,$CC28 CAF8 2100D1 LD HL,$D100 CAFB 0606 LD B,$06 CAFD 1A LD A,(DE) CAFE BE CP (HL) CAFF C2CFCC JP NZ,$CCCF CB02 13 INC DE CB03 23 INC HL CB04 05 DEC B CB05 C2FDCA JP NZ,$CAFD CB08 C9 RET CB09 CD98C9 CALL $C998 CB0C 2A8AC9 LD HL,($C98A) CB0F 7E LD A,(HL) CB10 FE20 CP $20 CB12 CA22CB JP Z,$CB22 CB15 B7 OR A CB16 CA22CB JP Z,$CB22 CB19 E5 PUSH HL CB1A CD8CC9 CALL $C98C CB1D E1 POP HL CB1E 23 INC HL CB1F C30FCB JP $CB0F CB22 3E3F LD A,$3F CB24 CD8CC9 CALL $C98C CB27 CD98C9 CALL $C998 CB2A CDDDCA CALL $CADD CB2D C382CC JP $CC82 CB30 1A LD A,(DE) CB31 B7 OR A CB32 C8 RET Z CB33 FE20 CP $20 CB35 DA09CB JP C,$CB09 CB38 C8 RET Z CB39 FE3D CP $3D CB3B C8 RET Z CB3C FE5F CP $5F CB3E C8 RET Z CB3F FE2E CP $2E CB41 C8 RET Z CB42 FE3A CP $3A CB44 C8 RET Z CB45 FE3B CP $3B CB47 C8 RET Z CB48 FE3C CP $3C CB4A C8 RET Z CB4B FE3E CP $3E CB4D C8 RET Z CB4E C9 RET CB4F 1A LD A,(DE) CB50 B7 OR A CB51 C8 RET Z CB52 FE20 CP $20 CB54 C0 RET NZ CB55 13 INC DE CB56 C34FCB JP $CB4F CB59 85 ADD A,L CB5A 6F LD L,A CB5B D0 RET NC CB5C 24 INC H CB5D C9 RET CB5E 3E00 LD A,$00 CB60 21CDD0 LD HL,$D0CD CB63 CD59CB CALL $CB59 CB66 E5 PUSH HL CB67 E5 PUSH HL CB68 AF XOR A CB69 32F0D0 LD ($D0F0),A CB6C 2A88C9 LD HL,($C988) CB6F EB EX DE,HL CB70 CD4FCB CALL $CB4F CB73 EB EX DE,HL CB74 228AC9 LD ($C98A),HL CB77 EB EX DE,HL CB78 E1 POP HL CB79 1A LD A,(DE) CB7A B7 OR A CB7B CA89CB JP Z,$CB89 CB7E DE40 SBC A,$40 CB80 47 LD B,A CB81 13 INC DE CB82 1A LD A,(DE) CB83 FE3A CP $3A CB85 CA90CB JP Z,$CB90 CB88 1B DEC DE CB89 3AEFD0 LD A,($D0EF) CB8C 77 LD (HL),A CB8D C396CB JP $CB96 CB90 78 LD A,B CB91 32F0D0 LD ($D0F0),A CB94 70 LD (HL),B CB95 13 INC DE CB96 0608 LD B,$08 CB98 CD30CB CALL $CB30 CB9B CAB9CB JP Z,$CBB9 CB9E 23 INC HL CB9F FE2A CP $2A CBA1 C2A9CB JP NZ,$CBA9 CBA4 363F LD (HL),$3F CBA6 C3ABCB JP $CBAB CBA9 77 LD (HL),A CBAA 13 INC DE CBAB 05 DEC B CBAC C298CB JP NZ,$CB98 CBAF CD30CB CALL $CB30 CBB2 CAC0CB JP Z,$CBC0 CBB5 13 INC DE CBB6 C3AFCB JP $CBAF CBB9 23 INC HL CBBA 3620 LD (HL),$20 CBBC 05 DEC B CBBD C2B9CB JP NZ,$CBB9 CBC0 0603 LD B,$03 CBC2 FE2E CP $2E CBC4 C2E9CB JP NZ,$CBE9 CBC7 13 INC DE CBC8 CD30CB CALL $CB30 CBCB CAE9CB JP Z,$CBE9 CBCE 23 INC HL CBCF FE2A CP $2A CBD1 C2D9CB JP NZ,$CBD9 CBD4 363F LD (HL),$3F CBD6 C3DBCB JP $CBDB CBD9 77 LD (HL),A CBDA 13 INC DE CBDB 05 DEC B CBDC C2C8CB JP NZ,$CBC8 CBDF CD30CB CALL $CB30 CBE2 CAF0CB JP Z,$CBF0 CBE5 13 INC DE CBE6 C3DFCB JP $CBDF CBE9 23 INC HL CBEA 3620 LD (HL),$20 CBEC 05 DEC B CBED C2E9CB JP NZ,$CBE9 CBF0 0603 LD B,$03 CBF2 23 INC HL CBF3 3600 LD (HL),$00 CBF5 05 DEC B CBF6 C2F2CB JP NZ,$CBF2 CBF9 EB EX DE,HL CBFA 2288C9 LD ($C988),HL CBFD E1 POP HL CBFE 010B00 LD BC,$000B CC01 23 INC HL CC02 7E LD A,(HL) CC03 FE3F CP $3F CC05 C209CC JP NZ,$CC09 CC08 04 INC B CC09 0D DEC C CC0A C201CC JP NZ,$CC01 CC0D 78 LD A,B CC0E B7 OR A CC0F C9 RET CC10 44 LD B,H CC11 49 LD C,C CC12 52 LD D,D CC13 2045 JR NZ,$CC5A CC15 52 LD D,D CC16 41 LD B,C CC17 2054 JR NZ,$CC6D CC19 59 LD E,C CC1A 50 LD D,B CC1B 45 LD B,L CC1C 53 LD D,E CC1D 41 LD B,C CC1E 56 LD D,(HL) CC1F 45 LD B,L CC20 52 LD D,D CC21 45 LD B,L CC22 4E LD C,(HL) CC23 2055 JR NZ,$CC7A CC25 53 LD D,E CC26 45 LD B,L CC27 52 LD D,D CC28 F9 LD SP,HL CC29 1600 LD D,$00 CC2B 00 NOP CC2C 00 NOP CC2D 1A LD A,(DE) CC2E 2110CC LD HL,$CC10 CC31 0E00 LD C,$00 CC33 79 LD A,C CC34 FE06 CP $06 CC36 D0 RET NC CC37 11CED0 LD DE,$D0CE CC3A 0604 LD B,$04 CC3C 1A LD A,(DE) CC3D BE CP (HL) CC3E C24FCC JP NZ,$CC4F CC41 13 INC DE CC42 23 INC HL CC43 05 DEC B CC44 C23CCC JP NZ,$CC3C CC47 1A LD A,(DE) CC48 FE20 CP $20 CC4A C254CC JP NZ,$CC54 CC4D 79 LD A,C CC4E C9 RET CC4F 23 INC HL CC50 05 DEC B CC51 C24FCC JP NZ,$CC4F CC54 0C INC C CC55 C333CC JP $CC33 CC58 AF XOR A ; ######## CCP START W/ INPUT BUFFER CLEARING ######## CC59 3207C9 LD ($C907),A ; store 00 as length of input buffer CC5C 31ABD0 LD SP,$D0AB ; ######## CCP START W/ COMMAND EXEC ######## CC5F C5 PUSH BC ; C = DSK Byte (Save entry parameter) CC60 79 LD A,C CC61 1F RRA CC62 1F RRA CC63 1F RRA CC64 1F RRA ; bring user number in the lower 4 bits CC65 E60F AND $0F ; filter out the upper 4 bits CC67 5F LD E,A ; store user no. in E (next saved in (DED6) at entry in BDOS) CC68 CD15CA CALL $CA15 ; BDOS function 20h (Set/Get User Code) CC6B CDB8C9 CALL $C9B8 ; BDOS function 0Dh (Reset Disk System) CC6E 32ABD0 LD ($D0AB),A ; SUBMIT FILE FLAG CC71 C1 POP BC ; C = DSK Byte (Get back entry parameter) CC72 79 LD A,C ; A = DSK Byte CC73 E60F AND $0F ; Extract disk drive number from DSK Byte CC75 32EFD0 LD ($D0EF),A ; Store correct disk drive in CURDSK CC78 CDBDC9 CALL $C9BD ; BDOS function 0Eh (Select Disk), A = drive number to be selected CC7B 3A07C9 LD A,($C907) ; CURRENT LENGTH OF INPUT BUFFER CC7E B7 OR A ; Check to see if there is anything in the input buffer CC7F C298CC JP NZ,$CC98 ; if buffer not empty don't bother with input CC82 31ABD0 LD SP,$D0AB CC85 CD98C9 CALL $C998 CC88 CDD0CA CALL $CAD0 CC8B C641 ADD A,$41 CC8D CD8CC9 CALL $C98C CC90 3E3E LD A,$3E CC92 CD8CC9 CALL $C98C CC95 CD39CA CALL $CA39 CC98 118000 LD DE,$0080 CC9B CDD8CA CALL $CAD8 CC9E CDD0CA CALL $CAD0 CCA1 32EFD0 LD ($D0EF),A CCA4 CD5ECB CALL $CB5E CCA7 C409CB CALL NZ,$CB09 CCAA 3AF0D0 LD A,($D0F0) CCAD B7 OR A CCAE C2A5CF JP NZ,$CFA5 CCB1 CD2ECC CALL $CC2E CCB4 21C1CC LD HL,$CCC1 CCB7 5F LD E,A CCB8 1600 LD D,$00 CCBA 19 ADD HL,DE CCBB 19 ADD HL,DE CCBC 7E LD A,(HL) CCBD 23 INC HL CCBE 66 LD H,(HL) CCBF 6F LD L,A CCC0 E9 JP (HL) CCC1 77 LD (HL),A CCC2 CD1FCE CALL $CE1F CCC5 5D LD E,L CCC6 CEAD ADC A,$AD CCC8 CE10 ADC A,$10 CCCA CF RST $08 CCCB 8E ADC A,(HL) CCCC CF RST $08 CCCD A5 AND L CCCE CF RST $08 CCCF 21F376 LD HL,$76F3 CCD2 2200C9 LD ($C900),HL CCD5 2100C9 LD HL,$C900 CCD8 E9 JP (HL) CCD9 01DFCC LD BC,$CCDF CCDC C3A7C9 JP $C9A7 CCDF 52 LD D,D CCE0 45 LD B,L CCE1 41 LD B,C CCE2 44 LD B,H CCE3 2045 JR NZ,$CD2A CCE5 52 LD D,D CCE6 52 LD D,D CCE7 4F LD C,A CCE8 52 LD D,D CCE9 00 NOP CCEA 01F0CC LD BC,$CCF0 CCED C3A7C9 JP $C9A7 CCF0 4E LD C,(HL) CCF1 4F LD C,A CCF2 2046 JR NZ,$CD3A CCF4 49 LD C,C CCF5 4C LD C,H CCF6 45 LD B,L CCF7 00 NOP CCF8 CD5ECB CALL $CB5E CCFB 3AF0D0 LD A,($D0F0) CCFE B7 OR A CCFF C209CB JP NZ,$CB09 CD02 21CED0 LD HL,$D0CE CD05 010B00 LD BC,$000B CD08 7E LD A,(HL) CD09 FE20 CP $20 CD0B CA33CD JP Z,$CD33 CD0E 23 INC HL CD0F D630 SUB $30 CD11 FE0A CP $0A CD13 D209CB JP NC,$CB09 CD16 57 LD D,A CD17 78 LD A,B CD18 E6E0 AND $E0 CD1A C209CB JP NZ,$CB09 CD1D 78 LD A,B CD1E 07 RLCA CD1F 07 RLCA CD20 07 RLCA CD21 80 ADD A,B CD22 DA09CB JP C,$CB09 CD25 80 ADD A,B CD26 DA09CB JP C,$CB09 CD29 82 ADD A,D CD2A DA09CB JP C,$CB09 CD2D 47 LD B,A CD2E 0D DEC C CD2F C208CD JP NZ,$CD08 CD32 C9 RET CD33 7E LD A,(HL) CD34 FE20 CP $20 CD36 C209CB JP NZ,$CB09 CD39 23 INC HL CD3A 0D DEC C CD3B C233CD JP NZ,$CD33 CD3E 78 LD A,B CD3F C9 RET CD40 0603 LD B,$03 CD42 7E LD A,(HL) CD43 12 LD (DE),A CD44 23 INC HL CD45 13 INC DE CD46 05 DEC B CD47 C242CD JP NZ,$CD42 CD4A C9 RET CD4B 218000 LD HL,$0080 CD4E 81 ADD A,C CD4F CD59CB CALL $CB59 CD52 7E LD A,(HL) CD53 C9 RET CD54 AF XOR A CD55 32CDD0 LD ($D0CD),A CD58 3AF0D0 LD A,($D0F0) CD5B B7 OR A CD5C C8 RET Z CD5D 3D DEC A CD5E 21EFD0 LD HL,$D0EF CD61 BE CP (HL) CD62 C8 RET Z CD63 C3BDC9 JP $C9BD CD66 3AF0D0 LD A,($D0F0) CD69 B7 OR A CD6A C8 RET Z CD6B 3D DEC A CD6C 21EFD0 LD HL,$D0EF CD6F BE CP (HL) CD70 C8 RET Z CD71 3AEFD0 LD A,($D0EF) CD74 C3BDC9 JP $C9BD CD77 CD5ECB CALL $CB5E CD7A CD54CD CALL $CD54 CD7D 21CED0 LD HL,$D0CE CD80 7E LD A,(HL) CD81 FE20 CP $20 CD83 C28FCD JP NZ,$CD8F CD86 060B LD B,$0B CD88 363F LD (HL),$3F CD8A 23 INC HL CD8B 05 DEC B CD8C C288CD JP NZ,$CD88 CD8F 1E00 LD E,$00 CD91 D5 PUSH DE CD92 CDE9C9 CALL $C9E9 CD95 CCEACC CALL Z,$CCEA CD98 CA1BCE JP Z,$CE1B CD9B 3AEED0 LD A,($D0EE) CD9E 0F RRCA CD9F 0F RRCA CDA0 0F RRCA CDA1 E660 AND $60 CDA3 4F LD C,A CDA4 3E0A LD A,$0A CDA6 CD4BCD CALL $CD4B CDA9 17 RLA CDAA DA0FCE JP C,$CE0F CDAD D1 POP DE CDAE 7B LD A,E CDAF 1C INC E CDB0 D5 PUSH DE CDB1 E603 AND $03 CDB3 F5 PUSH AF CDB4 C2CCCD JP NZ,$CDCC CDB7 CD98C9 CALL $C998 CDBA C5 PUSH BC CDBB CDD0CA CALL $CAD0 CDBE C1 POP BC CDBF C641 ADD A,$41 CDC1 CD92C9 CALL $C992 CDC4 3E3A LD A,$3A CDC6 CD92C9 CALL $C992 CDC9 C3D4CD JP $CDD4 CDCC CDA2C9 CALL $C9A2 CDCF 3E3A LD A,$3A CDD1 CD92C9 CALL $C992 CDD4 CDA2C9 CALL $C9A2 CDD7 0601 LD B,$01 CDD9 78 LD A,B CDDA CD4BCD CALL $CD4B CDDD E67F AND $7F CDDF FE20 CP $20 CDE1 C2F9CD JP NZ,$CDF9 CDE4 F1 POP AF CDE5 F5 PUSH AF CDE6 FE03 CP $03 CDE8 C2F7CD JP NZ,$CDF7 CDEB 3E09 LD A,$09 CDED CD4BCD CALL $CD4B CDF0 E67F AND $7F CDF2 FE20 CP $20 CDF4 CA0ECE JP Z,$CE0E CDF7 3E20 LD A,$20 CDF9 CD92C9 CALL $C992 CDFC 04 INC B CDFD 78 LD A,B CDFE FE0C CP $0C CE00 D20ECE JP NC,$CE0E CE03 FE09 CP $09 CE05 C2D9CD JP NZ,$CDD9 CE08 CDA2C9 CALL $C9A2 CE0B C3D9CD JP $CDD9 CE0E F1 POP AF CE0F CDC2CA CALL $CAC2 CE12 C21BCE JP NZ,$CE1B CE15 CDE4C9 CALL $C9E4 CE18 C398CD JP $CD98 CE1B D1 POP DE CE1C C386D0 JP $D086 CE1F CD5ECB CALL $CB5E CE22 FE0B CP $0B CE24 C242CE JP NZ,$CE42 CE27 0152CE LD BC,$CE52 CE2A CDA7C9 CALL $C9A7 CE2D CD39CA CALL $CA39 CE30 2107C9 LD HL,$C907 CE33 35 DEC (HL) CE34 C282CC JP NZ,$CC82 CE37 23 INC HL CE38 7E LD A,(HL) CE39 FE59 CP $59 CE3B C282CC JP NZ,$CC82 CE3E 23 INC HL CE3F 2288C9 LD ($C988),HL CE42 CD54CD CALL $CD54 CE45 11CDD0 LD DE,$D0CD CE48 CDEFC9 CALL $C9EF CE4B 3C INC A CE4C CCEACC CALL Z,$CCEA CE4F C386D0 JP $D086 CE52 41 LD B,C CE53 4C LD C,H CE54 4C LD C,H CE55 2028 JR NZ,$CE7F CE57 59 LD E,C CE58 2F CPL CE59 4E LD C,(HL) CE5A 29 ADD HL,HL CE5B 3F CCF CE5C 00 NOP CE5D CD5ECB CALL $CB5E CE60 C209CB JP NZ,$CB09 CE63 CD54CD CALL $CD54 CE66 CDD0C9 CALL $C9D0 CE69 CAA7CE JP Z,$CEA7 CE6C CD98C9 CALL $C998 CE6F 21F1D0 LD HL,$D0F1 CE72 36FF LD (HL),$FF CE74 21F1D0 LD HL,$D0F1 CE77 7E LD A,(HL) CE78 FE80 CP $80 CE7A DA87CE JP C,$CE87 CE7D E5 PUSH HL CE7E CDFEC9 CALL $C9FE CE81 E1 POP HL CE82 C2A0CE JP NZ,$CEA0 CE85 AF XOR A CE86 77 LD (HL),A CE87 34 INC (HL) CE88 218000 LD HL,$0080 CE8B CD59CB CALL $CB59 CE8E 7E LD A,(HL) CE8F FE1A CP $1A CE91 CA86D0 JP Z,$D086 CE94 CD8CC9 CALL $C98C CE97 CDC2CA CALL $CAC2 CE9A C286D0 JP NZ,$D086 CE9D C374CE JP $CE74 CEA0 3D DEC A CEA1 CA86D0 JP Z,$D086 CEA4 CDD9CC CALL $CCD9 CEA7 CD66CD CALL $CD66 CEAA C309CB JP $CB09 CEAD CDF8CC CALL $CCF8 CEB0 F5 PUSH AF CEB1 CD5ECB CALL $CB5E CEB4 C209CB JP NZ,$CB09 CEB7 CD54CD CALL $CD54 CEBA 11CDD0 LD DE,$D0CD CEBD D5 PUSH DE CEBE CDEFC9 CALL $C9EF CEC1 D1 POP DE CEC2 CD09CA CALL $CA09 CEC5 CAFBCE JP Z,$CEFB CEC8 AF XOR A CEC9 32EDD0 LD ($D0ED),A CECC F1 POP AF CECD 6F LD L,A CECE 2600 LD H,$00 CED0 29 ADD HL,HL CED1 110001 LD DE,$0100 CED4 7C LD A,H CED5 B5 OR L CED6 CAF1CE JP Z,$CEF1 CED9 2B DEC HL CEDA E5 PUSH HL CEDB 218000 LD HL,$0080 CEDE 19 ADD HL,DE CEDF E5 PUSH HL CEE0 CDD8CA CALL $CAD8 CEE3 11CDD0 LD DE,$D0CD CEE6 CD04CA CALL $CA04 CEE9 D1 POP DE CEEA E1 POP HL CEEB C2FBCE JP NZ,$CEFB CEEE C3D4CE JP $CED4 CEF1 11CDD0 LD DE,$D0CD CEF4 CDDAC9 CALL $C9DA CEF7 3C INC A CEF8 C201CF JP NZ,$CF01 CEFB 0107CF LD BC,$CF07 CEFE CDA7C9 CALL $C9A7 CF01 CDD5CA CALL $CAD5 CF04 C386D0 JP $D086 CF07 4E LD C,(HL) CF08 4F LD C,A CF09 2053 JR NZ,$CF5E CF0B 50 LD D,B CF0C 41 LD B,C CF0D 43 LD B,E CF0E 45 LD B,L CF0F 00 NOP CF10 CD5ECB CALL $CB5E CF13 C209CB JP NZ,$CB09 CF16 3AF0D0 LD A,($D0F0) CF19 F5 PUSH AF CF1A CD54CD CALL $CD54 CF1D CDE9C9 CALL $C9E9 CF20 C279CF JP NZ,$CF79 CF23 21CDD0 LD HL,$D0CD CF26 11DDD0 LD DE,$D0DD CF29 0610 LD B,$10 CF2B CD42CD CALL $CD42 CF2E 2A88C9 LD HL,($C988) CF31 EB EX DE,HL CF32 CD4FCB CALL $CB4F CF35 FE3D CP $3D CF37 CA3FCF JP Z,$CF3F CF3A FE5F CP $5F CF3C C273CF JP NZ,$CF73 CF3F EB EX DE,HL CF40 23 INC HL CF41 2288C9 LD ($C988),HL CF44 CD5ECB CALL $CB5E CF47 C273CF JP NZ,$CF73 CF4A F1 POP AF CF4B 47 LD B,A CF4C 21F0D0 LD HL,$D0F0 CF4F 7E LD A,(HL) CF50 B7 OR A CF51 CA59CF JP Z,$CF59 CF54 B8 CP B CF55 70 LD (HL),B CF56 C273CF JP NZ,$CF73 CF59 70 LD (HL),B CF5A AF XOR A CF5B 32CDD0 LD ($D0CD),A CF5E CDE9C9 CALL $C9E9 CF61 CA6DCF JP Z,$CF6D CF64 11CDD0 LD DE,$D0CD CF67 CD0ECA CALL $CA0E CF6A C386D0 JP $D086 CF6D CDEACC CALL $CCEA CF70 C386D0 JP $D086 CF73 CD66CD CALL $CD66 CF76 C309CB JP $CB09 CF79 0182CF LD BC,$CF82 CF7C CDA7C9 CALL $C9A7 CF7F C386D0 JP $D086 CF82 46 LD B,(HL) CF83 49 LD C,C CF84 4C LD C,H CF85 45 LD B,L CF86 2045 JR NZ,$CFCD CF88 58 LD E,B CF89 49 LD C,C CF8A 53 LD D,E CF8B 54 LD D,H CF8C 53 LD D,E CF8D 00 NOP CF8E CDF8CC CALL $CCF8 CF91 FE10 CP $10 CF93 D209CB JP NC,$CB09 CF96 5F LD E,A CF97 3ACED0 LD A,($D0CE) CF9A FE20 CP $20 CF9C CA09CB JP Z,$CB09 CF9F CD15CA CALL $CA15 CFA2 C389D0 JP $D089 CFA5 CDF5CA CALL $CAF5 CFA8 3ACED0 LD A,($D0CE) CFAB FE20 CP $20 CFAD C2C4CF JP NZ,$CFC4 CFB0 3AF0D0 LD A,($D0F0) CFB3 B7 OR A CFB4 CA89D0 JP Z,$D089 CFB7 3D DEC A CFB8 32EFD0 LD ($D0EF),A CFBB CD29CA CALL $CA29 CFBE CDBDC9 CALL $C9BD CFC1 C389D0 JP $D089 CFC4 11D6D0 LD DE,$D0D6 CFC7 1A LD A,(DE) CFC8 FE20 CP $20 CFCA C209CB JP NZ,$CB09 CFCD D5 PUSH DE CFCE CD54CD CALL $CD54 CFD1 D1 POP DE CFD2 2183D0 LD HL,$D083 CFD5 CD40CD CALL $CD40 CFD8 CDD0C9 CALL $C9D0 CFDB CA6BD0 JP Z,$D06B CFDE 210001 LD HL,$0100 CFE1 E5 PUSH HL CFE2 EB EX DE,HL CFE3 CDD8CA CALL $CAD8 CFE6 11CDD0 LD DE,$D0CD CFE9 CDF9C9 CALL $C9F9 CFEC C201D0 JP NZ,$D001 CFEF E1 POP HL CFF0 118000 LD DE,$0080 CFF3 19 ADD HL,DE CFF4 1100C9 LD DE,$C900 CFF7 7D LD A,L CFF8 93 SUB E CFF9 7C LD A,H CFFA 9A SBC A,D CFFB D271D0 JP NC,$D071 CFFE C3E1CF JP $CFE1 D001 E1 POP HL D002 3D DEC A D003 C271D0 JP NZ,$D071 D006 CD66CD CALL $CD66 D009 CD5ECB CALL $CB5E D00C 21F0D0 LD HL,$D0F0 D00F E5 PUSH HL D010 7E LD A,(HL) D011 32CDD0 LD ($D0CD),A D014 3E10 LD A,$10 D016 CD60CB CALL $CB60 D019 E1 POP HL D01A 7E LD A,(HL) D01B 32DDD0 LD ($D0DD),A D01E AF XOR A D01F 32EDD0 LD ($D0ED),A D022 115C00 LD DE,$005C D025 21CDD0 LD HL,$D0CD D028 0621 LD B,$21 D02A CD42CD CALL $CD42 D02D 2108C9 LD HL,$C908 D030 7E LD A,(HL) D031 B7 OR A D032 CA3ED0 JP Z,$D03E D035 FE20 CP $20 D037 CA3ED0 JP Z,$D03E D03A 23 INC HL D03B C330D0 JP $D030 D03E 0600 LD B,$00 D040 118100 LD DE,$0081 D043 7E LD A,(HL) D044 12 LD (DE),A D045 B7 OR A D046 CA4FD0 JP Z,$D04F D049 04 INC B D04A 23 INC HL D04B 13 INC DE D04C C343D0 JP $D043 D04F 78 LD A,B D050 328000 LD ($0080),A D053 CD98C9 CALL $C998 D056 CDD5CA CALL $CAD5 D059 CD1ACA CALL $CA1A D05C CD0001 CALL $0100 D05F 31ABD0 LD SP,$D0AB D062 CD29CA CALL $CA29 D065 CDBDC9 CALL $C9BD D068 C382CC JP $CC82 D06B CD66CD CALL $CD66 D06E C309CB JP $CB09 D071 017AD0 LD BC,$D07A D074 CDA7C9 CALL $C9A7 D077 C386D0 JP $D086 D07A 42 LD B,D D07B 41 LD B,C D07C 44 LD B,H D07D 204C JR NZ,$D0CB D07F 4F LD C,A D080 41 LD B,C D081 44 LD B,H D082 00 NOP D083 43 LD B,E D084 4F LD C,A D085 4D LD C,L D086 CD66CD CALL $CD66 D089 CD5ECB CALL $CB5E D08C 3ACED0 LD A,($D0CE) D08F D620 SUB $20 D091 21F0D0 LD HL,$D0F0 D094 B6 OR (HL) D095 C209CB JP NZ,$CB09 D098 C382CC JP $CC82 D09B 00 DEFB $00 ; \ D09C 00 DEFB $00 ; | D09D 00 DEFB $00 ; | D09E 00 DEFB $00 ; | D09F 00 DEFB $00 ; | D0A0 00 DEFB $00 ; | D0A1 00 DEFB $00 ; | D0A2 00 DEFB $00 ; \ STACK D0A3 00 DEFB $00 ; / AREA (16 bytes) D0A4 00 DEFB $00 ; | D0A5 00 DEFB $00 ; | D0A6 00 DEFB $00 ; | D0A7 00 DEFB $00 ; | D0A8 00 DEFB $00 ; | D0A9 00 DEFB $00 ; | D0AA 00 DEFB $00 ; / D0AB 00 DEFB $00 ; SUBMIT FLAG. FLAG SET WHEN COMMANDS COME FROM $$$.SUB FILE. D0AC 00 DEFB $00 ; *--- D0AD 24 DEFB $24 ; "$" | D0AE 24 DEFB $24 ; "$" | D0AF 24 DEFB $24 ; "$" | D0B0 20 DEFB $20 ; " " | D0B1 20 DEFB $20 ; " " | D0B2 20 DEFB $20 ; " " | D0B3 20 DEFB $20 ; " " | D0B4 20 DEFB $20 ; " " | D0B5 53 DEFB $53 ; "S" | D0B6 55 DEFB $55 ; "U" | D0B7 42 DEFB $42 ; "B" | D0B8 00 DEFB $00 ; | D0B9 00 DEFB $00 ; | D0BA 00 DEFB $00 ; | D0BB 00 DEFB $00 ; \ AREA KNOWN AS D0BC 00 DEFB $00 ; / "SUBFCB" D0BD 00 DEFB $00 ; | D0BE 00 DEFB $00 ; | D0BF 00 DEFB $00 ; | D0C0 00 DEFB $00 ; | D0C1 00 DEFB $00 ; | D0C2 00 DEFB $00 ; | D0C3 00 DEFB $00 ; | D0C4 00 DEFB $00 ; | D0C5 00 DEFB $00 ; | D0C6 00 DEFB $00 ; | D0C7 00 DEFB $00 ; | D0C8 00 DEFB $00 ; | D0C9 00 DEFB $00 ; | D0CA 00 DEFB $00 ; | D0CB 00 DEFB $00 ; | D0CC 00 DEFB $00 ; *--- D0CD 00 DEFB $00 ; *--- D0CE 00 DEFB $00 ; | D0CF 00 DEFB $00 ; | D0D0 00 DEFB $00 ; | D0D1 00 DEFB $00 ; | D0D2 00 DEFB $00 ; | D0D3 00 DEFB $00 ; | D0D4 00 DEFB $00 ; | D0D5 00 DEFB $00 ; | D0D6 00 DEFB $00 ; | D0D7 00 DEFB $00 ; | D0D8 00 DEFB $00 ; | D0D9 00 DEFB $00 ; | D0DA 00 DEFB $00 ; | D0DB 00 DEFB $00 ; \ FILE CONTROL BLOCK D0DC 00 DEFB $00 ; / FOR CCP READ/WRITE (33 bytes) D0DD 00 DEFB $00 ; | D0DE 00 DEFB $00 ; | D0DF 00 DEFB $00 ; | D0E0 00 DEFB $00 ; | D0E1 00 DEFB $00 ; | D0E2 00 DEFB $00 ; | D0E3 00 DEFB $00 ; | D0E4 00 DEFB $00 ; | D0E5 00 DEFB $00 ; | D0E6 00 DEFB $00 ; | D0E7 00 DEFB $00 ; | D0E8 00 DEFB $00 ; | D0E9 00 DEFB $00 ; | D0EA 00 DEFB $00 ; | D0EB 00 DEFB $00 ; | D0EC 00 DEFB $00 ; | D0ED 00 DEFB $00 ; *--- D0EE 00 DEFB $00 D0EF 00 DEFB $00 ; CURDSK (CURRENT LOGGED IN DISK) D0F0 00 DEFB $00 ; TRDISK (CURRENT TRANSIENT DISK) D0F1 00 DEFB $00 ; TYPCTR (INPUT BUFFER COUNTER USED BY 'TYPE' TO KEEP TRACK OF INPUT DISK BUFFER) D0F2 00 DEFB $00 D0F3 00 DEFB $00 D0F4 00 DEFB $00 D0F5 00 DEFB $00 D0F6 00 DEFB $00 D0F7 00 DEFB $00 D0F8 00 DEFB $00 D0F9 00 DEFB $00 D0FA 00 DEFB $00 D0FB 00 DEFB $00 D0FC 00 DEFB $00 D0FD 00 DEFB $00 D0FE 00 DEFB $00 D0FF 00 DEFB $00